package com.seo.mapper.bill.proxy;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.MapKey;

public interface ProxyTransactionMapper {

    /**
     * 保存账单
     * @param params 账单
     * @return 保存结果
     */
    int saveProxyTransactionFlow(Map<String, Object> params);

    /**
     * 更新账单
     * @param params 账单
     * @return 更新结果
     */
    int updateProxyTransactionFlowCode(Map<String, Object> params);

    /**
     * 更新账单状态
     * @param params 参数
     * @return 更新结果
     */
    int updateProxyTransactionFlowState(Map<String, Object> params);

    /**
     * 更新账单状态
     * @param tf 参数
     * @return 更新结果
     */
    int updateProxyTransactionFlowStateByTf(Map<String, Object> params);


    /**
     * 通过账单号获取账单
     * @param transactionCode 账单号
     * @return 账单
     */
    Map<String, Object> getProxyTransactionFlowByCode(String transactionCode);

    /**
     * 通过账单ID获取账单
     * @param id 账单ID
     * @return 账单
     */
    Map<String, Object> getProxyTransactionFlowById(long id);

    /**
	 * 余额明细
	 * @param param  param
	 * @return List<Map<String, Object>>
	 * @author rtc
	 * @version 2018.07.28 12:20
	 */
	List<Map<String, Object>> getProxyBalanceList(Map<String, Object> param);

	/**
	 * 获取代理下级用户关键字扣费信息
	 * @param param  param
	 * @return List<Map<String, Object>>
	 * @author rtc
	 * @version 2018.07.28 12:20
	 */
	List<Map<String, Object>> getKeyWordDeducList(Map<String, Object> param);


	/**
	 * 余额日报表
	 * @param param 参数
	 * @return 日报表
	 */
	@MapKey("balanceDate")
	Map<String, Map<String, Object>> getReportBalanceDay(Map<String, Object> param);
	
	/**
	 * 扣费明细
	 * @param param 参数
	 * @return
	 */
	@MapKey("balanceDate")
	Map<String, Map<String, Object>> getReportDeducDay(Map<String, Object> param);
}
